import java.util.Scanner;

public class Test2 {
    public static boolean isAdmin(String userId){
        return userId.toLowerCase().equals("admin");
    }
    public static void main1(String[] args) {
        System.out.println(isAdmin("Admin"));
    }

    public static void main2(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
//        String str = "I like beijing.";
        char[] ch = str.toCharArray();
        int let = ch.length;
        //将整体的字符串进行逆置
        func(ch,0,let-1);

        int i = 0;
        while(i < let){
              int j = i;//i用来遍历数组中的单词
            //当j小于数组长度并且j指向的位置不是空格，则向前挪动一位。
            while(j < let && ch[j]!= ' '){
                j++;
            }
            //当j没有走到数组末尾之后，则对空格之前的单词进行逆置
            if(j < let){
                func(ch,i,j-1);
                i = j+1;
            }else{
                //如果j走到最后数组最后一个元素之后，则表示这个数组中每个单词已经逆置完了，将i和j放在同一个位置，用i作为循环结束条件。
                func(ch,i,j-1);
                i = j;
            }
        }
        String string = new String(ch);
        System.out.println(string);
    }
    public static void func(char[] array,int start,int end){
        while(end>start){
            char tmp = array[start];
            array[start] = array[end];
            array[end] = tmp;
            //两个指针移动到下一个需要交换的位置，进行下一组交换。
            start++;
            end--;
        }
    }

    public static void main(String[] args) {
        Scanner scan =new Scanner(System.in);
        int n = scan.nextInt();//定义的输入元素的个数
        int[] arr = new int[n+1];//这里给数组定义的长度比输入的大1，是因为防止遍历数组进行比较的时候，出现数组越界。
        for (int i = 0; i < n; i++) {
            arr[i] = scan.nextInt();
        }
        int count = 0;//用来记录划分的子序列的个数
        int i = 0;//使用i遍历数组
        //这里使用循环，因为i没向前做一步，都需要判断是否到元素的末尾，并且判断是三种情况中的哪一个
        while(i < n){
            if(arr[i] < arr[i+1]){
                //i下标的值比i+1小
                while(i < n && arr[i] < arr[i+1]){
                  //有可能存在一些值连续情况下都是i下标的值比i+1的小,将这种情况的一组数据遍历完就需要使用一个变量记录一下，
                    //这就是数组划分的一个子序列。
                  i++;
                }
                count++;
                //这里使用i++，例如 123221，当i在3的位置时，没有满足if条件，所以3之前包括3，被划分为一个子序列，就需要i在向前走一位。
                i++;

            }else if(arr[i] == arr[i+1]){
                //i下标的值和i+1的值相等
                i++;
            }else{
                //i下标的值比i+1的值大
                while(i < n && arr[i] > arr[i+1]){
                    //也有可能出现一组连续的数字i位置的值比i+1位置的值大，这种情况的一组数据遍历完成之后，就需要记录一下。
                    //这就是 数组划分的有一个子序列
                    i++;
                }
                count++;
                i++;
            }
        }
        System.out.println(count);
    }
}


